package com.gin.no_gay_alliance.database;

import androidx.room.AutoMigration;
import androidx.room.Database;
import androidx.room.RoomDatabase;
import androidx.room.TypeConverters;

import com.gin.no_gay_alliance.database.converter.MyTypeConverter;
import com.gin.no_gay_alliance.database.dao.IpLocationHistoryDao;
import com.gin.no_gay_alliance.database.dao.NgaAccountDao;
import com.gin.no_gay_alliance.database.dao.NgaEmoteCountDao;
import com.gin.no_gay_alliance.database.dao.NgaUserInfoDao;
import com.gin.no_gay_alliance.database.dao.ReplyHistoryDao;
import com.gin.no_gay_alliance.database.dao.ReplyHistoryTopicDao;
import com.gin.no_gay_alliance.database.dao.ReportingRecordDao;
import com.gin.no_gay_alliance.database.dao.ScanTaskDao;
import com.gin.no_gay_alliance.database.dao.TopicHistoryDao;
import com.gin.no_gay_alliance.database.entity.IpLocationHistory;
import com.gin.no_gay_alliance.database.entity.NgaAccount;
import com.gin.no_gay_alliance.database.entity.NgaEmoteCount;
import com.gin.no_gay_alliance.database.entity.NgaUserInfo;
import com.gin.no_gay_alliance.database.entity.ReplyHistory;
import com.gin.no_gay_alliance.database.entity.ReplyHistoryTopic;
import com.gin.no_gay_alliance.database.entity.ReportingRecord;
import com.gin.no_gay_alliance.database.entity.ScanTask;
import com.gin.no_gay_alliance.database.entity.TopicHistory;

@Database(
        entities = {NgaAccount.class, NgaUserInfo.class, NgaEmoteCount.class, TopicHistory.class, ReplyHistory.class, ReplyHistoryTopic.class, IpLocationHistory.class, ScanTask.class, ReportingRecord.class}
        , version = 18
        , autoMigrations = {
        @AutoMigration(from = 6, to = 7)
        , @AutoMigration(from = 7, to = 8)
        , @AutoMigration(from = 8, to = 9)
        , @AutoMigration(from = 9, to = 10)
        , @AutoMigration(from = 10, to = 11)
        , @AutoMigration(from = 11, to = 12)
        , @AutoMigration(from = 12, to = 13)
        , @AutoMigration(from = 13, to = 14)
        , @AutoMigration(from = 14, to = 15)
        , @AutoMigration(from = 15, to = 16)
        , @AutoMigration(from = 16, to = 17)
        , @AutoMigration(from = 17, to = 18)
})
@TypeConverters({MyTypeConverter.class})
public abstract class NgaDatabase extends RoomDatabase {
    public abstract IpLocationHistoryDao ipLocationHistoryDao();

    public abstract NgaAccountDao ngaAccountDao();

    public abstract NgaEmoteCountDao ngaEmoteCountDao();

    public abstract NgaUserInfoDao ngaUserInfoDao();

    public abstract ReplyHistoryDao replyHistoryDao();

    public abstract ReplyHistoryTopicDao replyHistoryTopicDao();

    public abstract ReportingRecordDao reportingRecordDao();

    public abstract ScanTaskDao scanTaskDao();

    public abstract TopicHistoryDao topicHistoryDao();
}